home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / gem / l_1199 / 879 < prev    next >
Internet Message Format  |  1994-08-27  |  8KB

  1. Date: Tue, 19 Jul 1994 22:57:06 -0400 (EDT)
  2. From: Timothy Miller <millert@undergrad.csee.usf.edu>
  3. Subject: Amodal, etc.
  4. To: gem-list@world.std.com
  5. In-Reply-To: <9407151031.ag14270@ncrhub1.NCR.COM>
  6. Message-Id: <Pine.3.87.9407192206.A23061-0100000@grad>
  7. Mime-Version: 1.0
  8. Precedence: bulk
  9.  
  10. Hollis:
  11.  
  12. ]GEM is not going to change to match my philosophy; so we're writing a
  13. ]GEM Library to *match* the philosophy. There is no reason why users have to
  14. ]be stuck in the dark ages in terms of a user interface.
  15.  
  16. Did you ever consider that perhaps some people won't LIKE your 
  17. philosophy?  Some won't, some won't.
  18.  
  19. I'm writing an amodal dialog handler, and there will be options that the 
  20. developer can set to make it disabled, an untoppable tool box, operable 
  21. even while not on top, etc.
  22.  
  23. But the default will be that only the TOP window is operable because it 
  24. has the focus (although it always processes WM_CLOSE, etc. from MultiTOS, 
  25. et al, even while not on top).
  26.  
  27. Besides, when you have the window on top, the WHOLE window is visible and 
  28. there is only one rectangle in the window's rectangle list.  You can do 
  29. things more efficiently if you don't have to break them up, clip multiple 
  30. areas in succession, etc.
  31.  
  32.  
  33. Side note:
  34.  
  35. Have you noticed that MultiTOS does not combine multiple window redraw 
  36. messages even if one's contained in the other?  Two overlapping redraw 
  37. requests will cause the same area to be redrawn twice.
  38.  
  39. And have you also noticed that it doesn't optimize the rectangle list 
  40. like WINX does?  If two adjacent rectangles have, say, the same width, 
  41. and one's top meets the other's bottom, MultiTOS will put two rectangles 
  42. in the list.  I like the way WINX optimizes this all.
  43.  
  44.  
  45. Another note:
  46.  
  47. Bickering is counterproductive.  Just imagine an outsider watching the 
  48. synde remarks, insults and other nasty things being thrown around... he'd 
  49. never want to follow our standard, one created by a bunch of 
  50. argumentative 12 year-olds.
  51.  
  52.  
  53. Hollis:
  54.  
  55. ]We *did* do it right. If you had a copy of the demo program and used it, you
  56. ]would never be able to tell that we do these so-called "time wasting" 
  57. things,
  58. ]unless we told you.
  59.  
  60. Time-wasting is time-wasting.  Period.  If you're writing part of an OS, 
  61. you can optimize something, you can fit in the code, and you don't do it, 
  62. you're an idiot. Not that I'm calling you or anyone else an idiot.  
  63.  
  64. If you checked the mouse position, say, every 1/2 second this would be 
  65. much better than busy-tracking it, and the user could care less about a 
  66. 1/2 second delay before his mouse-pointer changed.  
  67.  
  68. On the other hand, finding the largest possible rectangle that the mouse 
  69. pointer can move in before it enters or exits an object that would change 
  70. the pointer or something like that is most efficient because it lets the 
  71. OS, at the lowest level, track the mouse, rather than having your program 
  72. call objc_find every time the mouse pointer moved, which is wasteful.
  73.  
  74. At this point, my amodal dialog handler doesn't change the mouse pointer 
  75. for anything, and I'm not too enthusiastic about it because all the 
  76. problems associated with other applications wanting to change it, etc, 
  77. plus I never cared about seeing it change.  I can position things more 
  78. comfortably with the pointer than with the cross hairs, text-cursor or 
  79. whatever.
  80.  
  81. If I put it in at all, though, waiting for a rectangle event would make 
  82. the interface to my routines more complicated, defeating my push toward 
  83. simplicity for the programmer, so I would probably check the mouse 
  84. position every time the service routine for the dialog is called so the 
  85. developer can set up a timer event.
  86.  
  87.  
  88. I do not like the idea of having buttons function in background windows 
  89. unless that particular dialog is INTENDED to work that way.  There should 
  90. be options for doing this for things like tool boxes and multiple 
  91. non-overlapping pannels, but otherwise, I like the way GEM works normally.
  92.  
  93.  
  94. Oh, BTW, I wish you luck on your amodal dialog libraries.  It'll be a 
  95. long time before mine are as powerful as yours, but hopefully my 
  96. competition will do you some good.  :)
  97.  
  98.  
  99. I couldn't possibly do WITHOUT extended object types.  I was kinda 
  100. surprised that WERCS supported them.  :)  You know what I HATE about 
  101. WERCS?  Not only does it squack at you when you overlap two objects, but 
  102. IT DOESN'T LET YOU.  Very irritating.
  103.  
  104.  
  105. I agree that MultiTOS is seriously unbearably slow.
  106.  
  107.  
  108. Have you seen OMEn?  That screen font gives me a massive headache.  Does 
  109. this guy have a clue about user iterfaces?  Someone should give him a 
  110. lecture on aesthetics.
  111.  
  112.  
  113. What precisely are you referring to when you talk about multi-threading 
  114. in the context of your dialog libraries?
  115.  
  116.  
  117. How do you handle your sliders?  How does the developer construct one in 
  118. a dialog?
  119.  
  120.  
  121. Forget:
  122.  
  123. ]>For the program source code, there is little to worry about.  If the
  124. ]>slider position and size in the resource file do not correspond to the
  125. ]>numbers you placed in the parent BOXTEXT, then you can kick them into
  126. ]>place by calling a routine immediately after you initialize the dialog.
  127. ]
  128. ]When you say slider, what do you mean?  The kind that just allows you to
  129. ]move a small box to a position within another box (like a window slider)
  130. ]or an active slider that scrolls through a list of items?  In general,
  131. ]I think your idea is interesting.  Not _too_ complicated, but on the
  132. ]other hand setting it up the first time could be a little slow (though
  133. ]this is not unusual -- everything has a learning curve).
  134.  
  135. Only the window-like sliders are available right now, although active 
  136. sliders will be shortly.  The only difference is that as the slider is 
  137. dragged, messages will be returned to the application so that the 
  138. developer can update the displayu of something else on the fly.
  139.  
  140. Every amodal handler is going to have complication SOMEWHERE.  There is 
  141. always going to be something to complain about, but it will be different 
  142. for each library.  Mine puts more into the setup in the resource editor 
  143. so that the programmer has to do much less in his source code.
  144.  
  145.  
  146. ]>                    I intend to release my source code for use by Atari
  147. ]>developers, although I have not determined how I will handle
  148. ]>compensation.  (I could charge developers who use it a small one-time fee.)
  149. ]
  150. ]This could be a problem; I can only speak for myself, but if there is
  151. ]a choice between a free product and one that I would have to pay for
  152. ]to use, I'll usually use the free one (unless the one that I have to
  153. ]pay for is unique).  EGEM is free; my own dialog-library (though not
  154. ]as good as EGEM) is free for anyone who asks.  I like your idea, but
  155. ]probably not enough to pay for it...  :)
  156.  
  157. I'm broke.  I need any money I can get, especially for something that 
  158. would be so widely used.  :)
  159.  
  160. I hope to put enough functionality into my library so as to make it a 
  161. serious contender against the others.
  162.  
  163.  
  164. Do you have any suggestions on how I should store accelerator keys for 
  165. buttons in dialogs?  I thought of obscuring a parent object behind every 
  166. object that contained short-cut info, and a few other things.
  167.  
  168. The easiest way, for me, would be to have the programmer pass an array of 
  169. accelerators to the dialog initialization routine with enough information 
  170. to know which buttons to deal with and where to put the little underline 
  171. thingys, but this would require code changes when something needs to be 
  172. modified, so it's out of the question.  What do you think?
  173.  
  174.  
  175. Ssykor:
  176.  
  177. I tried to uudecode the fontselector you put in your email.  It wouldn't 
  178. decode.  The program says something about no end of line.
  179.  
  180.  
  181.  
  182.